package com.zyj.java1;

/**
 * @program: JVMDemo
 * @ClassName StringNewTest
 * @author: YaJun
 * @Date: 2021 - 12 - 30 - 11:14
 * @Package: com.zyj.java1
 * @Description:
 *
 * 题目：
 * new String("ab") 会创建几个对象？看字节码，就知道是两个
 *  第一个对象：通过 new 字节码指令创建一个String对象
 *  第二个对象：通过 ldc 字节码指令在常量池中创建一个字符串常量ab
 *
 *
 * 思考：
 * new String("a") + new String("b") 呢？
 *  对象1：new StringBuilder()
 *  对象2：new String("a")
 *  对象3：常量池中的 "a"
 *  对象4：new String("b")
 *  对象5：常量池中的 "b"
 *
 *  深入剖析：StringBuilder的toString()
 *      对象6：new String("ab")
 *      强调一下，toString()的调用，在字符串常量池中，没有生成 "ab"
 */
public class StringNewTest {

    public static void main(String[] args) {
//        String ab = new String("ab");
        String c = new String("a") + new String("b");
    }

}
